package io;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * 实现一个建议的记事本工具利用流连接
 * 在文件输出流上链接转换流.
 * 然后将用户在控制台上输入的每一行字符串都写入到对应的文件中。
 * 当用户在控制台上单独输入"exit"时程序退出。
 */
public class AutoFlushDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("pw3.txt");
        //负责:将写出的字符全部转换为字节（可以按照指定的字符集转换）
        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
        //负责:块写文本数据（攒够8192个字符一次性写出）
        BufferedWriter bw = new BufferedWriter(osw);
        //负责:按行写出
        PrintWriter pw = new PrintWriter(bw,true);
        Scanner sc = new Scanner(System.in);
        String output;
        System.out.println("请输入要写入的内容(输入exit退出):");
        while (true){
            output = sc.nextLine();
            if ("exit".equalsIgnoreCase(output)) {
                break;
            }
            pw.println(output);
        }
        System.out.println("再见！");
        pw.close();
    }
}
